package edu.aynu.dao;

import edu.aynu.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserDao {

    /**
     * 根据账号查找密码
     * @param username
     * @return
     */
    User selectUserByUsername(String username);
    /**
     * 查询密码。利用密码进行判定
     * @param user
     * @return
     */
    User queryOne(User user);

    /**
     * 根据Id查询
     * @param id
     * @return
     */
    User queryById(Integer id);

    /**
     * 判定邮箱或者账户是否存在
     * @param username
     * @return
     */
    User deterUsername(String username);
    User deterEmail(String email);

    /**
     * 注册的新用户  添加到数据库
     *   这里只添加  账号和密码，  密码默认是123
     * @param user
     * @return
     */
    int addUser(User user);

    /**
     * 注册  成功之后
     * 完善自己的个人信息 , 比如 密码 姓名  邮箱。
     * @param user
     * @return
     */
    int updateUserById(User user);

    /**
     * 用户自己注删除功能
     * @return
     */
    int deleteUserById(int id);
    /**
     * =================================管理员操作===============================================================
     */

    /**
     * 展示所有用户信息
     * @return
     */
    List<User> queryAll();

    /**
     * 删除多个用户
     * @param ids
     * @return
     */
    int deleteUserByIds(@Param("ids") Integer[] ids);

}
